home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / nss / secport.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  8KB  |  264 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is the Netscape security libraries.
  15.  *
  16.  * The Initial Developer of the Original Code is
  17.  * Netscape Communications Corporation.
  18.  * Portions created by the Initial Developer are Copyright (C) 1994-2000
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *
  23.  * Alternatively, the contents of this file may be used under the terms of
  24.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  25.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  26.  * in which case the provisions of the GPL or the LGPL are applicable instead
  27.  * of those above. If you wish to allow use of your version of this file only
  28.  * under the terms of either the GPL or the LGPL, and not to allow others to
  29.  * use your version of this file under the terms of the MPL, indicate your
  30.  * decision by deleting the provisions above and replace them with the notice
  31.  * and other provisions required by the GPL or the LGPL. If you do not delete
  32.  * the provisions above, a recipient may use your version of this file under
  33.  * the terms of any one of the MPL, the GPL or the LGPL.
  34.  *
  35.  * ***** END LICENSE BLOCK ***** */
  36.  
  37. /*
  38.  * secport.h - portability interfaces for security libraries
  39.  *
  40.  * $Id: secport.h,v 1.12 2005/05/18 00:03:11 wtchang%redhat.com Exp $
  41.  */
  42.  
  43. #ifndef _SECPORT_H_
  44. #define _SECPORT_H_
  45.  
  46. /*
  47.  * define XP_MAC, XP_WIN, XP_BEOS, or XP_UNIX, in case they are not defined
  48.  * by anyone else
  49.  */
  50. #ifdef macintosh
  51. # ifndef XP_MAC
  52. # define XP_MAC 1
  53. # endif
  54. #endif
  55.  
  56. #ifdef _WINDOWS
  57. # ifndef XP_WIN
  58. # define XP_WIN
  59. # endif
  60. #if defined(_WIN32) || defined(WIN32)
  61. # ifndef XP_WIN32
  62. # define XP_WIN32
  63. # endif
  64. #else
  65. # ifndef XP_WIN16
  66. # define XP_WIN16
  67. # endif
  68. #endif
  69. #endif
  70.  
  71. #ifdef __BEOS__
  72. # ifndef XP_BEOS
  73. # define XP_BEOS
  74. # endif
  75. #endif
  76.  
  77. #ifdef unix
  78. # ifndef XP_UNIX
  79. # define XP_UNIX
  80. # endif
  81. #endif
  82.  
  83. #if defined(__WATCOMC__) || defined(__WATCOM_CPLUSPLUS__)
  84. #include "watcomfx.h"
  85. #endif
  86.  
  87. #if defined(_WIN32_WCE)
  88. #include <windef.h>
  89. #include <types.h>
  90. #elif defined( XP_MAC ) 
  91. #include <types.h>
  92. #include <time.h> /* for time_t below */
  93. #else
  94. #include <sys/types.h>
  95. #endif
  96.  
  97. #include <ctype.h>
  98. #include <string.h>
  99. #if defined(_WIN32_WCE)
  100. #include <stdlib.h>    /* WinCE puts some stddef symbols here. */
  101. #else
  102. #include <stddef.h>
  103. #endif
  104. #include <stdlib.h>
  105. #include "prtypes.h"
  106. #include "prlog.h"    /* for PR_ASSERT */
  107. #include "plarena.h"
  108. #include "plstr.h"
  109.  
  110. /*
  111.  * HACK for NSS 2.8 to allow Admin to compile without source changes.
  112.  */
  113. #ifndef SEC_BEGIN_PROTOS
  114. #include "seccomon.h"
  115. #endif
  116.  
  117. SEC_BEGIN_PROTOS
  118.  
  119. extern void *PORT_Alloc(size_t len);
  120. extern void *PORT_Realloc(void *old, size_t len);
  121. extern void *PORT_AllocBlock(size_t len);
  122. extern void *PORT_ReallocBlock(void *old, size_t len);
  123. extern void PORT_FreeBlock(void *ptr);
  124. extern void *PORT_ZAlloc(size_t len);
  125. extern void PORT_Free(void *ptr);
  126. extern void PORT_ZFree(void *ptr, size_t len);
  127. extern char *PORT_Strdup(const char *s);
  128. extern time_t PORT_Time(void);
  129. extern void PORT_SetError(int value);
  130. extern int PORT_GetError(void);
  131.  
  132. extern PLArenaPool *PORT_NewArena(unsigned long chunksize);
  133. extern void *PORT_ArenaAlloc(PLArenaPool *arena, size_t size);
  134. extern void *PORT_ArenaZAlloc(PLArenaPool *arena, size_t size);
  135. extern void PORT_FreeArena(PLArenaPool *arena, PRBool zero);
  136. extern void *PORT_ArenaGrow(PLArenaPool *arena, void *ptr,
  137.                 size_t oldsize, size_t newsize);
  138. extern void *PORT_ArenaMark(PLArenaPool *arena);
  139. extern void PORT_ArenaRelease(PLArenaPool *arena, void *mark);
  140. extern void PORT_ArenaUnmark(PLArenaPool *arena, void *mark);
  141. extern char *PORT_ArenaStrdup(PLArenaPool *arena, const char *str);
  142.  
  143. #ifdef __cplusplus
  144. }
  145. #endif
  146.  
  147. #define PORT_Assert PR_ASSERT
  148. #define PORT_ZNew(type) (type*)PORT_ZAlloc(sizeof(type))
  149. #define PORT_New(type) (type*)PORT_Alloc(sizeof(type))
  150. #define PORT_ArenaNew(poolp, type)    \
  151.         (type*) PORT_ArenaAlloc(poolp, sizeof(type))
  152. #define PORT_ArenaZNew(poolp, type)    \
  153.         (type*) PORT_ArenaZAlloc(poolp, sizeof(type))
  154. #define PORT_NewArray(type, num)    \
  155.         (type*) PORT_Alloc (sizeof(type)*(num))
  156. #define PORT_ZNewArray(type, num)    \
  157.         (type*) PORT_ZAlloc (sizeof(type)*(num))
  158. #define PORT_ArenaNewArray(poolp, type, num)    \
  159.         (type*) PORT_ArenaAlloc (poolp, sizeof(type)*(num))
  160. #define PORT_ArenaZNewArray(poolp, type, num)    \
  161.         (type*) PORT_ArenaZAlloc (poolp, sizeof(type)*(num))
  162.  
  163. /* Please, keep these defines sorted alphabetically.  Thanks! */
  164.  
  165. #define PORT_Atoi     atoi
  166.  
  167. #define PORT_Memcmp     memcmp
  168. #define PORT_Memcpy     memcpy
  169. #ifndef SUNOS4
  170. #define PORT_Memmove     memmove
  171. #else /*SUNOS4*/
  172. #define PORT_Memmove(s,ct,n)    bcopy ((ct), (s), (n))
  173. #endif/*SUNOS4*/
  174. #define PORT_Memset     memset
  175.  
  176. #define PORT_Strcasecmp PL_strcasecmp
  177. #define PORT_Strcat     strcat
  178. #define PORT_Strchr     strchr
  179. #define PORT_Strrchr    strrchr
  180. #define PORT_Strcmp     strcmp
  181. #define PORT_Strcpy     strcpy
  182. #define PORT_Strlen(s)     strlen(s)
  183. #define PORT_Strncasecmp PL_strncasecmp
  184. #define PORT_Strncat     strncat
  185. #define PORT_Strncmp     strncmp
  186. #define PORT_Strncpy     strncpy
  187. #define PORT_Strpbrk    strpbrk
  188. #define PORT_Strstr     strstr
  189. #define PORT_Strtok     strtok
  190.  
  191. #define PORT_Tolower     tolower
  192.  
  193. typedef PRBool (PR_CALLBACK * PORTCharConversionWSwapFunc) (PRBool toUnicode,
  194.             unsigned char *inBuf, unsigned int inBufLen,
  195.             unsigned char *outBuf, unsigned int maxOutBufLen,
  196.             unsigned int *outBufLen, PRBool swapBytes);
  197.  
  198. typedef PRBool (PR_CALLBACK * PORTCharConversionFunc) (PRBool toUnicode,
  199.             unsigned char *inBuf, unsigned int inBufLen,
  200.             unsigned char *outBuf, unsigned int maxOutBufLen,
  201.             unsigned int *outBufLen);
  202.  
  203. #ifdef __cplusplus
  204. extern "C" {
  205. #endif
  206.  
  207. void PORT_SetUCS4_UTF8ConversionFunction(PORTCharConversionFunc convFunc);
  208. void PORT_SetUCS2_ASCIIConversionFunction(PORTCharConversionWSwapFunc convFunc);
  209. PRBool PORT_UCS4_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
  210.             unsigned int inBufLen, unsigned char *outBuf,
  211.             unsigned int maxOutBufLen, unsigned int *outBufLen);
  212. PRBool PORT_UCS2_ASCIIConversion(PRBool toUnicode, unsigned char *inBuf,
  213.             unsigned int inBufLen, unsigned char *outBuf,
  214.             unsigned int maxOutBufLen, unsigned int *outBufLen,
  215.             PRBool swapBytes);
  216. void PORT_SetUCS2_UTF8ConversionFunction(PORTCharConversionFunc convFunc);
  217. PRBool PORT_UCS2_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
  218.             unsigned int inBufLen, unsigned char *outBuf,
  219.             unsigned int maxOutBufLen, unsigned int *outBufLen);
  220.  
  221. /* One-way conversion from ISO-8859-1 to UTF-8 */
  222. PRBool PORT_ISO88591_UTF8Conversion(const unsigned char *inBuf,
  223.             unsigned int inBufLen, unsigned char *outBuf,
  224.             unsigned int maxOutBufLen, unsigned int *outBufLen);
  225.  
  226. PR_EXTERN(PRBool)
  227. sec_port_ucs4_utf8_conversion_function
  228. (
  229.   PRBool toUnicode,
  230.   unsigned char *inBuf,
  231.   unsigned int inBufLen,
  232.   unsigned char *outBuf,
  233.   unsigned int maxOutBufLen,
  234.   unsigned int *outBufLen
  235. );
  236.  
  237. PR_EXTERN(PRBool)
  238. sec_port_ucs2_utf8_conversion_function
  239. (
  240.   PRBool toUnicode,
  241.   unsigned char *inBuf,
  242.   unsigned int inBufLen,
  243.   unsigned char *outBuf,
  244.   unsigned int maxOutBufLen,
  245.   unsigned int *outBufLen
  246. );
  247.  
  248. /* One-way conversion from ISO-8859-1 to UTF-8 */
  249. extern PRBool
  250. sec_port_iso88591_utf8_conversion_function
  251. (
  252.   const unsigned char *inBuf,
  253.   unsigned int inBufLen,
  254.   unsigned char *outBuf,
  255.   unsigned int maxOutBufLen,
  256.   unsigned int *outBufLen
  257. );
  258.  
  259. extern int NSS_PutEnv(const char * envVarName, const char * envValue);
  260.  
  261. SEC_END_PROTOS
  262.  
  263. #endif /* _SECPORT_H_ */
  264.